1. Field of the Invention
The present invention relates to Extensible Markup Language (XML) document parsing and processing, and more particularly to the use of separate processing appliances to perform XML parsing and XML processing.
2. Description of the Related Art
The Extensible Markup Language (XML) is a markup language specification widely credited with improving the functionality of the World Wide Web by making data self-describing, thereby allowing the identification of information in a more accurate, flexible, and adaptable way. XML is referred to as “extensible” because XML is not a fixed format like the hypertext markup language (HTML) which is a single, predefined markup language. Rather, XML is a meta-language that describes other languages. As such, XML allows for the design of other markup languages for limitless different types of documents. XML can act as a meta-language because XML is written according to the standardized general markup language (SGML)—the international standard meta-language for text document markup.
For an XML document to be acceptable to an end user, the XML document must conform to a predefined structure. An XML schema is an XML-based representation of the structure of an XML document. Through its support for data types and namespaces, an XML schema has the potential to describe the expected structure for XML elements and attributes. As such, prior to an XML document being utilized, the XML document can be validated to ensure that the XML document conforms to its corresponding XML schema.
Validation can involve the parsing of an XML document and the construction of a document object model (DOM) tree for the XML document. Once a DOM tree has been constructed, the nodes of the DOM tree can be traversed in order to confirm that the structure of the XML document conforms to a referenced schema. As it will be apparent then to the skilled artisan, the parsing process can be resource consuming in nature. To address the resource consumptive nature of XML document parsing, XML processing appliances have been used to perform XML document parsing separately from applications requiring XML document processing.
Where a separate XML processing appliance provides XML document parsing, a client application can call an application programming interface (API) that forwards the XML document to the XML processing appliance for parsing and, optionally, schema validation. The XML processing appliance can perform parsing on the received XML document and return a parsed result to the application. As a result, significant performance advantages can be achieved by offloading the XML parsing to the XML processing appliance. Yet, significant overhead remains in the packaging and communication of the XML document between the application and the XML processing appliance, and communication of the resulting serialized data between the appliance and the application.